package com.example.Redis6.Redis高级;

public class Redis集群方式三Cluster集群 {
}

/**
 * Redis-Cluster集群
 *
 * redis的哨兵模式基本已经可以实现高可用，读写分离 ，
 * 但是在这种模式下每台redis服务器都存储相同的数据，很浪费内存，
 * 所以在redis3.0上加入了cluster模式，实现的redis的分布式存储，
 * 也就是说每台redis节点上存储不同的内容。
 *
 *  Redis-Cluster采用无中心结构,它的特点如下：
 *
 * 所有的redis节点彼此互联(PING-PONG机制),
 * 内部使用二进制协议优化传输速度和带宽。
 *
 * 节点的fail是通过集群中超过半数的节点检测失效时才生效。
 *
 * 客户端与redis节点直连,不需要中间代理层.客户端不需要连接集群所有节点,
 * 连接集群中任何一个可用节点即可。
 *
 * 工作方式：
 *
 * 在redis的每一个节点上，都有这么两个东西，一个是插槽（slot），
 * 它的的取值范围是：0-16383。还有一个就是cluster，
 * 可以理解为是一个集群管理的插件。
 * 当我们的存取的key到达的时候，redis会根据crc16的算法得出一个结果，
 * 然后把结果对 16384 求余数，这样每个 key 都会对应一个编号在
 * 0-16383 之间的哈希槽，通过这个值，去找到对应的插槽所对应的节点，
 * 然后直接自动跳转到这个对应的节点上进行存取操作。
 *
 * 为了保证高可用，redis-cluster集群引入了主从模式，
 * 一个主节点对应一个或者多个从节点，当主节点宕机的时候，
 * 就会启用从节点。当其它主节点ping一个主节点A时，
 * 如果半数以上的主节点与A通信超时，那么认为主节点A宕机了。
 * 如果主节点A和它的从节点A1都宕机了，那么该集群就无法再提供服务了。
 *
 */